/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.stefanini.informacion_mundialista.controles;

import com.stefanini.informacion_mundialista.Equipo;
import com.stefanini.informacion_mundialista.ejbs.EquipoManager;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

/**
 *
 * @author CarlosAlberto
 */
@Named(value = "equipoAdminController")
@SessionScoped
public class EquiposAdminControl implements Serializable {

    private static final long serialVersionUID = 1l;
    private Equipo equipo;

    @EJB
    private EquipoManager equipoManager;
    private List<Equipo> Equipos;

    private boolean realizarConsulta = true;
    private boolean isEdit = false;

    public void initCrear() {
        setEquipo(new Equipo());
        isEdit = false;
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("/Informacion_MundialistaWeb/pages/equipos/agregarEquipo.xhtml");
        } catch (IOException ex) {
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE,"Error al redireccionar",ex);
        }
    }
    public void initEdit(Equipo equipoEdit){
        this.setEquipo(equipoEdit);
        isEdit = true;
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("/Informacion_MundialistaWeb/pages/equipos/agregarEquipo.xhtml");
        } catch (IOException ex) {
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE,"Error al rediccionar",ex);
        }
    }
    public void guardarEquipo(){
        FacesContext ctx = FacesContext.getCurrentInstance();
        
        if (equipoManager.verificarGrupoExistente(getEquipo().getNombre())) {
            ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error", 
                    "Ya existe un equipo con el nombre ingresado" ));
        } else {
            if (equipoManager.guardarEquipo(getEquipo(), isEdit)) {
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Info",
                        "Equipo creado exitosamente"));
                realizarConsulta=true;
                try {
                    ctx.getExternalContext().redirect("/Informacion_MundialistaWeb/pages/equipos/equiposAdmin.xhtml");
                } catch (IOException ex) {
                    Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE,"Error al redireccionar",ex);
                }
            } else {
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error",
                        "Error al crear el Equipo"));
            }
        }
    }
    public void consultarEquipos(){
        if (realizarConsulta) {
            setEquipos(equipoManager.getAllEquipos());
            realizarConsulta = false;
        }
    }

    /**
     * @return the equipo
     */
    public Equipo getEquipo() {
        return equipo;
    }

    /**
     * @param equipo the equipo to set
     */
    public void setEquipo(Equipo equipo) {
        this.equipo = equipo;
    }

    /**
     * @return the Equipos
     */
    public List<Equipo> getEquipos() {
        return Equipos;
    }

    /**
     * @param equipos the Equipos to set
     */
    public void setEquipos(List<Equipo> equipos) {
        this.Equipos = equipos;
    }
}
